This invention relates to communications networks. More specifically, it relates to a method and apparatus for testing conformance to service level agreements in networks.
The Internet, a packet-switched network, currently operates substantially as a best effort network, providing a single class of service. In a single class of service network, packets transmitted between a source and destination are each treated as having equal priority. Network entities typically make no distinction between packets and thus all packets are of the same priority and subject to the same delivery latencies and delays. Therefore, there are few specified parameters and few guarantees that Internet traffic will be delivered to the target device. While this is probably an acceptable model for data communication, it may not be suitable to support multimedia applications. Multimedia applications have different needs than those required for data communication. While a main factor for data communication is throughput, the main factor for effective operation of multimedia applications is usually delay.
Therefore, next-generation remote access servers will likely need to explicitly support multiple classes of service (i.e., differentiated services) to provide support for multimedia applications and other real-time applications, such as Voice-over-IP, in which voice signals are digitized and packetized for transmission across an IP network. Differentiated services will likely operate on a packet-by-packet basis, and may include options to differentiate packet forwarding and routing based on pre-defined parameters, such as those relating to throughput, delay, jitter, and loss. The parameters will likely be administratively initiated and enforced on either a per-user or per-traffic-type basis.
One prior art method that has been used to implement a differentiated services scheme is to stamp each packet to establish the class of service to which the stamped packet belongs. The stamping of a packet may occur in many places in the network, such as the user""s workstation, a first-hop router, a gateway, or a remote access server, for example.
Under the trend towards the use and support of differentiated services in packet-switched networks, some traffic streams are given higher priority than others at switches and routers, based on a service level agreement (SLA) between the sender of the stream and a network administrative entity (NAE), which may be an Internet service provider, for example. Currently, priority mechanisms are supported or proposed by Frame Relay, ATM, Token Ring, Ethernet, and Internet Protocol (IP) networks. The implementation of differentiated services allows for improved quality of service (QoS) to be realized in higher priority traffic. Quality of Service is discussed in Quality of Service: Delivering QoS on the Internet and in Corporate Networks by P. Ferguson and G. Huston, John Wiley and Sons, New York, 1998.
An SLA is an agreement between a user and a service provider that defines the nature of the service to be provided and the responsibilities of both parties. It is important for users to have responsibilities in a differentiated services scheme, otherwise all users may attempt to transmit all traffic at a high priority level, which would obliterate the benefits derived from having the scheme. To reduce the chance of all users trying to send traffic at a high priority level, a pricing or capacity allocation scheme will likely form the basis of these agreements. These schemes may be based on flat-rate, per-time, per-service, or per-usage charging, or some other method. Thus, a sender who requires a particular QoS will be able to procure an SLA with an NAE to provide a mapping to an appropriate discrete service level. The contract is likely to take on the following form: The sender agrees to transmit traffic within a particular set of parameters, such as mean bit-rate, maximum burst size, etc., and the NAE agrees to provide the requested QoS to the sender, as long as the sender""s traffic remains within the parameters.
An SLA for a non-differentiated services scheme may denote a QoS characteristic that will be provided to the user, such as a throughput specification that will be provided across a virtual leased line, or maximum delay or packet loss specification that will be provided over an IP network.
As an example, a network user may have an SLA with an ISP (an NAE) specifying that the ISP will mark all of the user""s packets with a particular per hop behavior. The per hop behavior could be based on the type of traffic generated, such as a per hop behavior stamp providing low delay for remote login applications or a providing high throughput for file transfers, for example. Given the per hop behavior, each router between the user and the destination (the traffic sink) will handle the user""s packets in the particular proscribed manner. For example, a packet marked for low latency might be served before a packet marked for high throughput.
These QoS schemes may be an improvement over current best effort networks, however, at least two problems arise. First, an NAE may not be able to guarantee the QoS specified in the SLA. In particular, it is difficult to guarantee capacity to individual traffic flows in IP networks, even with a priority scheme in place, because the NAE may not be able to control the number of users connected at any particular time, and therefore cannot control the users cumulative demands on bandwidth. Secondly, the Internet consists of many independent NAEs. It is currently not possible for a single NAE to provide end-to-end QoS if the sender""s traffic is traveling across multiple NAEs because a single NAE typically only has control over a small portion of the entire end-to-end network path.
Therefore, a QoS scheme may include contractual obligations between peer NAEs in addition to the obligations between senders and NAEs. Contractual obligations between peer NAEs are contained in an Inter-Provider SLA (IPS). Since each NAE may have several peer NAEs, it may be desirable to have several IPSs, wherein each IPS contains contractual obligations between adjacent NAEs. Alternative IPS arrangements are also possible, such as several NAEs agreeing to abide by the terms of a single SLA.
Once a differential QoS scheme is implemented among the NAEs, a user may select a class of service that supports an application. However, the user may not know which class of service satisfies the QoS demands of the application. If the user overcompensates by selecting a higher priority class of service, the user may incur unnecessary costs. Additionally, the user may not even know if the QoS contractual obligations regarding the different classes of services are being complied with by the NAEs.
In order for the QoS contractual obligations underlying SLAs and IPSs to be useful, they must be enforceable. To be enforceable, it must be determined whether the contractual obligations are being complied with. Needed is a method and/or apparatus to measure compliance of an NAE to an IPS or SLA.
Also needed is a method and/or apparatus to allow a user to measure the QoS for different classes of service. If a user has knowledge regarding the QoS characteristics for each class of service, the user may then select the least costly service level satisfying the QoS requirements for a particular application.
In view of the above, a method for conformance testing of service level agreements in networks is provided. The method comprises the steps of collecting quality of service information from network traffic over a plurality of network nodes, comparing the collected quality of service information to a plurality of specified quality of service levels, and providing a plurality of possible virtual quality of service pathways through a plurality of network nodes based on the compared quality of service information.
One embodiment of the method includes the additional step of creating a virtual connection using the compared quality of service information.
In another embodiment of the method, the step of collecting quality of service information from network traffic over a plurality of network nodes includes transmitting test traffic from a source to a destination over a plurality of network nodes, receiving the transmitted test traffic at the destination, and identifying quality of service information by comparing characteristics of the test traffic transmitted by the source to characteristics of the test traffic received by the destination.
In yet another embodiment of the method, the step of collecting quality of service information from network traffic over a plurality of network nodes includes transmitting test traffic from a source port to an echo port over a first plurality of network nodes. The echo port then transmits echo traffic back to the source port over a second plurality of network nodes, wherein the echo traffic corresponds to the test traffic. The source port receives the echo traffic and identifies quality of service information by comparing characteristics of the test traffic to characteristics of the echo traffic.
In still another embodiment of the method for conformance testing of service level agreements in networks, a first network device initiates a connection request for a second network device. The connection request is received on a third network device, wherein the connection request includes specified quality of service characteristics. A virtual data path between the third network device and the second network device is dynamically determined over a plurality of network devices, wherein the virtual data path includes the specified quality of service characteristics. The virtual connection is then created over the virtual data path between the first network device and the second network device, wherein the virtual connection includes the specified quality of service characteristics. The step of dynamically determining a data path may include the additional steps of dynamically collecting quality of service characteristics from the plurality of network devices between the first network device and the second network device, and comparing the collected quality of service characteristics to the specified quality of service characteristics. Furthermore, the additional step of generating a report indicative of a level of conformance between the collected quality of service characteristics and the specified quality of service characteristics may be included in one embodiment.
In accordance with a second aspect of the invention, a quality of service monitor for evaluating conformance by a network entity to a service level agreement is provided. The quality of service monitor includes a packet sniffer operatively connected to a network. A quality of service identification block is operatively connected to the packet sniffer. A comparator communicates with the quality of service identification block to compare the measured quality of service characteristics with the specified quality of service characteristics, thereby determining conformance to the service level agreement.
In accordance with a third aspect of the invention, a machine-readable storage medium contains a set of instructions for causing a general purpose computer to determine whether a ToS byte has been altered. The general purpose computer is connected to a network. The set of instructions cause the general purpose computer to transmit a first IP header from a first network device to a second network device. The first IP header includes a first ToS byte set to a first ToS value, which may be used to prioritize traffic on the network. Next, a second IP header is sent by the second network device in response to the second network device receiving the first IP header from the first network device. The second IP header is then received at the first network device from the second network device. The second IP header includes a second ToS byte set to a second ToS value. The general purpose computer then compares the first ToS value to the second ToS value to determine whether the first ToS byte has been altered.
In one embodiment of the machine-readable storage medium, the set of instructions cause the general purpose computer to perform the additional step of generating a report upon determining that the first ToS byte has been altered. The report may indicate a level of conformance by a network administrative entity to a service level agreement.